home *** CD-ROM | disk | FTP | other *** search
/ World of Video / World of Video.iso / gfxprograms / boards / misc / cybershare / devdocs / include / cyberinline.h < prev   
Encoding:
C/C++ Source or Header  |  1995-02-13  |  13.1 KB  |  417 lines

  1. /*
  2.  *   GCC interfaces for cybergraphics.library.
  3.  *   Use it for generating lib files or for direct inclusion.
  4.  *   Generated with 'FD2Inline' (01/20/95)
  5.  *                                            R.Haslbeck
  6.  *   *Caution*: May be partly incorrect (especially 'BestCModeIDTagList')!
  7. */
  8.  
  9. #include <sys/cdefs.h>
  10. #include <inline/stubs.h>
  11.  
  12. #include <stdarg.h>
  13. #include <libraries/cybergraphics.h>
  14. __BEGIN_DECLS
  15.  
  16. #ifndef BASE_EXT_DECL
  17. #define BASE_EXT_DECL extern struct Library*  CyberGfxBase;
  18. #endif
  19. #ifndef BASE_PAR_DECL
  20. #define BASE_PAR_DECL
  21. #define BASE_PAR_DECL0 void
  22. #endif
  23. #ifndef BASE_NAME
  24. #define BASE_NAME CyberGfxBase
  25. #endif
  26.  
  27. static __inline ULONG BestCModeIDTagList( BASE_PAR_DECL struct TagItem *  ModeListTags )
  28. {
  29.         BASE_EXT_DECL
  30.         register _res __asm("d0");
  31.         register void *a6 __asm("a6");
  32.         register struct TagItem * a0 __asm("a0");
  33.  
  34.         a6 = BASE_NAME;
  35.         a0 = ModeListTags;
  36.         __asm __volatile ("jsr a6@(-0x48)"
  37.         : "=r" (_res)
  38.         : "r" (a6), "r" (a0)
  39.         : "d0", "d1", "a0", "a1" );
  40.         return _res;
  41. }
  42.  
  43. static __inline ULONG AllocCModeListTagList( BASE_PAR_DECL struct TagItem *  ModeListTags )
  44. {
  45.         BASE_EXT_DECL
  46.         register _res __asm("d0");
  47.         register void *a6 __asm("a6");
  48.         register struct TagItem * a1 __asm("a1");
  49.  
  50.         a6 = BASE_NAME;
  51.         a1 = ModeListTags;
  52.         __asm __volatile ("jsr a6@(-0x48)"
  53.         : "=r" (_res)
  54.         : "r" (a6), "r" (a1)
  55.         : "d0", "d1", "a0", "a1" );
  56.         return _res;
  57. }
  58. static __inline LONG CModeRequestTagList( BASE_PAR_DECL APTR  ModeRequest, struct TagItem *  ModeRequestTags )
  59. {
  60.         BASE_EXT_DECL
  61.         register _res __asm("d0");
  62.         register void *a6 __asm("a6");
  63.         register APTR a0 __asm("a0");
  64.         register struct TagItem * a1 __asm("a1");
  65.  
  66.         a6 = BASE_NAME;
  67.         a0 = ModeRequest;
  68.         a1 = ModeRequestTags;
  69.         __asm __volatile ("jsr a6@(-0x42)"
  70.         : "=r" (_res)
  71.         : "r" (a6), "r" (a0), "r" (a1)
  72.         : "d0", "d1", "a0", "a1" );
  73.         return _res;
  74. }
  75. static __inline void DoCDrawMethodTagList( BASE_PAR_DECL struct Hook *  Hook, struct RastPort *  RastPort, struct TagItem *  TagList )
  76. {
  77.         BASE_EXT_DECL
  78.         register _res __asm("d0");
  79.         register void *a6 __asm("a6");
  80.         register struct Hook * a0 __asm("a0");
  81.         register struct RastPort * a1 __asm("a1");
  82.         register struct TagItem * a2 __asm("a2");
  83.  
  84.         a6 = BASE_NAME;
  85.         a0 = Hook;
  86.         a1 = RastPort;
  87.         a2 = TagList;
  88.         __asm __volatile ("jsr a6@(-0x9c)"
  89.         : "=r" (_res)
  90.         : "r" (a6), "r" (a0), "r" (a1), "r" (a2)
  91.         : "d0", "d1", "a0", "a1", "a2" );
  92.         return _res;
  93. }
  94. static __inline LONG FillPixelArray( BASE_PAR_DECL struct RastPort *  RastPort, UWORD  DestX, UWORD  DestY, UWORD  SizeX, UWORD  SizeY, ULONG  ARGB )
  95. {
  96.         BASE_EXT_DECL
  97.         register _res __asm("d0");
  98.         register void *a6 __asm("a6");
  99.         register struct RastPort * a1 __asm("a1");
  100.         register UWORD d0 __asm("d0");
  101.         register UWORD d1 __asm("d1");
  102.         register UWORD d2 __asm("d2");
  103.         register UWORD d3 __asm("d3");
  104.         register ULONG d4 __asm("d4");
  105.  
  106.         a6 = BASE_NAME;
  107.         a1 = RastPort;
  108.         d0 = DestX;
  109.         d1 = DestY;
  110.         d2 = SizeX;
  111.         d3 = SizeY;
  112.         d4 = ARGB;
  113.         __asm __volatile ("jsr a6@(-0x96)"
  114.         : "=r" (_res)
  115.         : "r" (a6), "r" (a1), "r" (d0), "r" (d1), "r" (d2), "r" (d3), "r" (d4)
  116.         : "d0", "d1", "a0", "a1", "d2", "d3", "d4" );
  117.         return _res;
  118. }
  119. /*
  120. static __inline void FreeCModeList( BASE_PAR_DECL struct List *  ModeList )
  121. {
  122.         BASE_EXT_DECL
  123.         register _res __asm("d0");
  124.         register void *a6 __asm("a6");
  125.         register struct List * a0 __asm("a0");
  126.  
  127.         a6 = BASE_NAME;
  128.         a0 = ModeList;
  129.         __asm __volatile ("jsr a6@(-0x4e)"
  130.         : "=r" (_res)
  131.         : "r" (a6), "r" (a0)
  132.         : "d0", "d1", "a0", "a1" );
  133.         return _res;
  134. }
  135. */
  136. static __inline ULONG GetCyberIDAttr( BASE_PAR_DECL ULONG  CyberIDAttr, ULONG  CyberDisplayModeID )
  137. {
  138.         BASE_EXT_DECL
  139.         register _res __asm("d0");
  140.         register void *a6 __asm("a6");
  141.         register ULONG d0 __asm("d0");
  142.         register ULONG d1 __asm("d1");
  143.  
  144.         a6 = BASE_NAME;
  145.         d0 = CyberIDAttr;
  146.         d1 = CyberDisplayModeID;
  147.         __asm __volatile ("jsr a6@(-0x66)"
  148.         : "=r" (_res)
  149.         : "r" (a6), "r" (d0), "r" (d1)
  150.         : "d0", "d1", "a0", "a1" );
  151.         return _res;
  152. }
  153. static __inline ULONG GetCyberMapAttr( BASE_PAR_DECL struct BitMap *  CyberGfxBitmap, ULONG  CyberAttrTag )
  154. {
  155.         BASE_EXT_DECL
  156.         register _res __asm("d0");
  157.         register void *a6 __asm("a6");
  158.         register struct BitMap * a0 __asm("a0");
  159.         register ULONG d0 __asm("d0");
  160.  
  161.         a6 = BASE_NAME;
  162.         a0 = CyberGfxBitmap;
  163.         d0 = CyberAttrTag;
  164.         __asm __volatile ("jsr a6@(-0x60)"
  165.         : "=r" (_res)
  166.         : "r" (a6), "r" (a0), "r" (d0)
  167.         : "d0", "d1", "a0", "a1" );
  168.         return _res;
  169. }
  170. static __inline LONG InvertPixelArray( BASE_PAR_DECL struct RastPort *  RastPort, UWORD  DestX, UWORD  DestY, UWORD  SizeX, UWORD  SizeY )
  171. {
  172.         BASE_EXT_DECL
  173.         register _res __asm("d0");
  174.         register void *a6 __asm("a6");
  175.         register struct RastPort * a1 __asm("a1");
  176.         register UWORD d0 __asm("d0");
  177.         register UWORD d1 __asm("d1");
  178.         register UWORD d2 __asm("d2");
  179.         register UWORD d3 __asm("d3");
  180.  
  181.         a6 = BASE_NAME;
  182.         a1 = RastPort;
  183.         d0 = DestX;
  184.         d1 = DestY;
  185.         d2 = SizeX;
  186.         d3 = SizeY;
  187.         __asm __volatile ("jsr a6@(-0x90)"
  188.         : "=r" (_res)
  189.         : "r" (a6), "r" (a1), "r" (d0), "r" (d1), "r" (d2), "r" (d3)
  190.         : "d0", "d1", "a0", "a1", "d2", "d3" );
  191.         return _res;
  192. }
  193. static __inline BOOL IsCyberModeID( BASE_PAR_DECL ULONG  displayID )
  194. {
  195.         BASE_EXT_DECL
  196.         register _res __asm("d0");
  197.         register void *a6 __asm("a6");
  198.         register ULONG d0 __asm("d0");
  199.  
  200.         a6 = BASE_NAME;
  201.         d0 = displayID;
  202.         __asm __volatile ("jsr a6@(-0x36)"
  203.         : "=r" (_res)
  204.         : "r" (a6), "r" (d0)
  205.         : "d0", "d1", "a0", "a1" );
  206.         return _res;
  207. }
  208. static __inline LONG MovePixelArray( BASE_PAR_DECL UWORD  SrcX, UWORD  SrcY, struct RastPort *  RastPort, UWORD  DestX, UWORD  DestY, UWORD  SizeX, UWORD  SizeY )
  209. {
  210.         BASE_EXT_DECL
  211.         register _res __asm("d0");
  212.         register void *a6 __asm("a6");
  213.         register UWORD d0 __asm("d0");
  214.         register UWORD d1 __asm("d1");
  215.         register struct RastPort * a1 __asm("a1");
  216.         register UWORD d2 __asm("d2");
  217.         register UWORD d3 __asm("d3");
  218.         register UWORD d4 __asm("d4");
  219.         register UWORD d5 __asm("d5");
  220.  
  221.         a6 = BASE_NAME;
  222.         d0 = SrcX;
  223.         d1 = SrcY;
  224.         a1 = RastPort;
  225.         d2 = DestX;
  226.         d3 = DestY;
  227.         d4 = SizeX;
  228.         d5 = SizeY;
  229.         __asm __volatile ("jsr a6@(-0x84)"
  230.         : "=r" (_res)
  231.         : "r" (a6), "r" (d0), "r" (d1), "r" (a1), "r" (d2), "r" (d3), "r" (d4), "r" (d5)
  232.         : "d0", "d1", "a0", "a1", "d2", "d3", "d4", "d5" );
  233.         return _res;
  234. }
  235. static __inline LONG ReadPixelArray( BASE_PAR_DECL APTR *  destRect, UWORD  destX, UWORD  destY, UWORD  destMod, struct RastPort *  RastPort, UWORD  SrcX, UWORD  SrcY, UWORD  SizeX, UWORD  SizeY, UBYTE  DestFormat )
  236. {
  237.         BASE_EXT_DECL
  238.         register _res __asm("d0");
  239.         register void *a6 __asm("a6");
  240.         register APTR * a0 __asm("a0");
  241.         register UWORD d0 __asm("d0");
  242.         register UWORD d1 __asm("d1");
  243.         register UWORD d2 __asm("d2");
  244.         register struct RastPort * a1 __asm("a1");
  245.         register UWORD d3 __asm("d3");
  246.         register UWORD d4 __asm("d4");
  247.         register UWORD d5 __asm("d5");
  248.         register UWORD d6 __asm("d6");
  249.         register UBYTE d7 __asm("d7");
  250.  
  251.         a6 = BASE_NAME;
  252.         a0 = destRect;
  253.         d0 = destX;
  254.         d1 = destY;
  255.         d2 = destMod;
  256.         a1 = RastPort;
  257.         d3 = SrcX;
  258.         d4 = SrcY;
  259.         d5 = SizeX;
  260.         d6 = SizeY;
  261.         d7 = DestFormat;
  262.         __asm __volatile ("jsr a6@(-0x78)"
  263.         : "=r" (_res)
  264.         : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (d2), "r" (a1), "r" (d3), "r" (d4), "r" (d5), "r" (d6), "r" (d7)
  265.         : "d0", "d1", "a0", "a1", "d2", "d3", "d4", "d5", "d6", "d7" );
  266.         return _res;
  267. }
  268. static __inline LONG ReadRGBPixel( BASE_PAR_DECL struct RastPort *  RastPort, UWORD  x, UWORD  y )
  269. {
  270.         BASE_EXT_DECL
  271.         register _res __asm("d0");
  272.         register void *a6 __asm("a6");
  273.         register struct RastPort * a1 __asm("a1");
  274.         register UWORD d0 __asm("d0");
  275.         register UWORD d1 __asm("d1");
  276.  
  277.         a6 = BASE_NAME;
  278.         a1 = RastPort;
  279.         d0 = x;
  280.         d1 = y;
  281.         __asm __volatile ("jsr a6@(-0x6c)"
  282.         : "=r" (_res)
  283.         : "r" (a6), "r" (a1), "r" (d0), "r" (d1)
  284.         : "d0", "d1", "a0", "a1" );
  285.         return _res;
  286. }
  287. static __inline LONG ScalePixelArray( BASE_PAR_DECL APTR *  srcRect, UWORD  SrcW, UWORD  SrcH, UWORD  SrcMod, struct RastPort *  RastPort, UWORD  DestX, UWORD  DestY, UWORD  DestW, UWORD  DestH, UBYTE  SrcFormat )
  288. {
  289.         BASE_EXT_DECL
  290.         register _res __asm("d0");
  291.         register void *a6 __asm("a6");
  292.         register APTR * a0 __asm("a0");
  293.         register UWORD d0 __asm("d0");
  294.         register UWORD d1 __asm("d1");
  295.         register UWORD d2 __asm("d2");
  296.         register struct RastPort * a1 __asm("a1");
  297.         register UWORD d3 __asm("d3");
  298.         register UWORD d4 __asm("d4");
  299.         register UWORD d5 __asm("d5");
  300.         register UWORD d6 __asm("d6");
  301.         register UBYTE d7 __asm("d7");
  302.  
  303.         a6 = BASE_NAME;
  304.         a0 = srcRect;
  305.         d0 = SrcW;
  306.         d1 = SrcH;
  307.         d2 = SrcMod;
  308.         a1 = RastPort;
  309.         d3 = DestX;
  310.         d4 = DestY;
  311.         d5 = DestW;
  312.         d6 = DestH;
  313.         d7 = SrcFormat;
  314.         __asm __volatile ("jsr a6@(-0x5a)"
  315.         : "=r" (_res)
  316.         : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (d2), "r" (a1), "r" (d3), "r" (d4), "r" (d5), "r" (d6), "r" (d7)
  317.         : "d0", "d1", "a0", "a1", "d2", "d3", "d4", "d5", "d6", "d7" );
  318.         return _res;
  319. }
  320. static __inline LONG SwapPixelArray( BASE_PAR_DECL APTR *  MemRect, UWORD  MemX, UWORD  MemY, UWORD  MemMod, struct RastPort *  RastPort, UWORD  RastX, UWORD  RastY, UWORD  SizeX, UWORD  SizeY, UBYTE  MemFormat )
  321. {
  322.         BASE_EXT_DECL
  323.         register _res __asm("d0");
  324.         register void *a6 __asm("a6");
  325.         register APTR * a0 __asm("a0");
  326.         register UWORD d0 __asm("d0");
  327.         register UWORD d1 __asm("d1");
  328.         register UWORD d2 __asm("d2");
  329.         register struct RastPort * a1 __asm("a1");
  330.         register UWORD d3 __asm("d3");
  331.         register UWORD d4 __asm("d4");
  332.         register UWORD d5 __asm("d5");
  333.         register UWORD d6 __asm("d6");
  334.         register UBYTE d7 __asm("d7");
  335.  
  336.         a6 = BASE_NAME;
  337.         a0 = MemRect;
  338.         d0 = MemX;
  339.         d1 = MemY;
  340.         d2 = MemMod;
  341.         a1 = RastPort;
  342.         d3 = RastX;
  343.         d4 = RastY;
  344.         d5 = SizeX;
  345.         d6 = SizeY;
  346.         d7 = MemFormat;
  347.         __asm __volatile ("jsr a6@(-0x8a)"
  348.         : "=r" (_res)
  349.         : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (d2), "r" (a1), "r" (d3), "r" (d4), "r" (d5), "r" (d6), "r" (d7)
  350.         : "d0", "d1", "a0", "a1", "d2", "d3", "d4", "d5", "d6", "d7" );
  351.         return _res;
  352. }
  353. static __inline LONG WritePixelArray( BASE_PAR_DECL APTR *  srcRect, UWORD  SrcX, UWORD  SrcY, UWORD  SrcMod, struct RastPort *  RastPort, UWORD  DestX, UWORD  DestY, UWORD  SizeX, UWORD  SizeY, UBYTE  SrcFormat )
  354. {
  355.         BASE_EXT_DECL
  356.         register _res __asm("d0");
  357.         register void *a6 __asm("a6");
  358.         register APTR * a0 __asm("a0");
  359.         register UWORD d0 __asm("d0");
  360.         register UWORD d1 __asm("d1");
  361.         register UWORD d2 __asm("d2");
  362.         register struct RastPort * a1 __asm("a1");
  363.         register UWORD d3 __asm("d3");
  364.         register UWORD d4 __asm("d4");
  365.         register UWORD d5 __asm("d5");
  366.         register UWORD d6 __asm("d6");
  367.         register UBYTE d7 __asm("d7");
  368.  
  369.         a6 = BASE_NAME;
  370.         a0 = srcRect;
  371.         d0 = SrcX;
  372.         d1 = SrcY;
  373.         d2 = SrcMod;
  374.         a1 = RastPort;
  375.         d3 = DestX;
  376.         d4 = DestY;
  377.         d5 = SizeX;
  378.         d6 = SizeY;
  379.         d7 = SrcFormat;
  380.         __asm __volatile ("jsr a6@(-0x7e)"
  381.         : "=r" (_res)
  382.         : "r" (a6), "r" (a0), "r" (d0), "r" (d1), "r" (d2), "r" (a1), "r" (d3), "r" (d4), "r" (d5), "r" (d6), "r" (d7)
  383.         : "d0", "d1", "a0", "a1", "d2", "d3", "d4", "d5", "d6", "d7" );
  384.         return _res;
  385. }
  386. static __inline ULONG WriteRGBPixel( BASE_PAR_DECL struct RastPort *  RastPort, UWORD  x, UWORD  y, ULONG  argb )
  387. {
  388.         BASE_EXT_DECL
  389.         register _res __asm("d0");
  390.         register void *a6 __asm("a6");
  391.         register struct RastPort * a1 __asm("a1");
  392.         register UWORD d0 __asm("d0");
  393.         register UWORD d1 __asm("d1");
  394.         register ULONG d2 __asm("d2");
  395.  
  396.         a6 = BASE_NAME;
  397.         a1 = RastPort;
  398.         d0 = x;
  399.         d1 = y;
  400.         d2 = argb;
  401.         __asm __volatile ("jsr a6@(-0x72)"
  402.         : "=r" (_res)
  403.         : "r" (a6), "r" (a1), "r" (d0), "r" (d1), "r" (d2)
  404.         : "d0", "d1", "a0", "a1", "d2" );
  405.         return _res;
  406. }
  407.  
  408.  
  409. #undef BASE_EXT_DECL
  410. #undef BASE_PAR_DECL
  411. #undef BASE_PAR_DECL0
  412. #undef BASE_NAME
  413.  
  414. __END_DECLS
  415.  
  416.  
  417.